package java8;

import java.util.Arrays;
import java.util.stream.Stream;

public class LambdaStreamState {
    public static void main(String[] args) {

        //以下默认都是串行操作，出来的顺序是可以保证的
        //如果使用 parallel 的话使用的就是并行操作，出来的速度可能会快一些，但是顺序没有办法保证
        Stream.of("abc", "def", "hij", "klm")
                .limit(2)//只拿取前两个元素
                .forEach(System.out::println);

        Stream.of("abc", "def", "hij", "klm")
                .skip(2)//拿元素的时候跳过前面的两个元素
                .forEach(System.out::println);

        Stream.of("abc", "abc", "abc", "hij", "klm")
                .distinct()//去除重复的元素
                .forEach(System.out::println);

        Stream.of("abc", "def", "hij", "klm")
                .sorted()//默认按照字母表的先后顺序进行排序
                .forEach(System.out::println);

        int[] arr = {1,2,3,4,1,2,1,2,3,2};
        int[] ints = Arrays.stream(arr).parallel().distinct().toArray();

        for (int e: ints) {
            System.out.println(e);
        }
    }
}
